package org.x.user.dto;

import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;

@Data
public class CreateAclDTO {
    /**
     * name	string	是	权限名称（如：删除用户）
     * code	string	是	权限码（全局唯一，如：user:delete）
     * type	integer	是	类型（1:API, 2:菜单, 3:按钮）
     * url	string	否	资源路径（API路径/菜单路由）
     * parentId	long	否	父权限点ID
     * menuId	long	否	关联菜单ID（type=2时必填）
     */
    @NotEmpty(message = "权限名称不能为空")
    private String name;
    @Pattern(regexp = "^[a-z]+:[a-z]+$", message = "权限码格式错误")
    @NotEmpty(message = "权限码不能为空")
    private String code;
    @NotNull(message = "权限类型不能为空")
    private Integer type;
    private String url;
    private Long parentId;
    /**
     * type=2时必填
     */
    private Long menuId;
}
